<?php declare(strict_types=1);


namespace App\Model\Entity;

use Swoft\Db\Annotation\Mapping\Column;
use Swoft\Db\Annotation\Mapping\Entity;
use Swoft\Db\Annotation\Mapping\Id;
use Swoft\Db\Eloquent\Model;


/**
 * 
 * Class Team
 *
 * @since 2.0
 *
 * @Entity(table="team")
 */
class Team extends Model
{
    /**
     * 
     * @Id()
     * @Column(name="team_id", prop="teamId")
     *
     * @var int
     */
    private $teamId;

    /**
     * 
     *
     * @Column(name="team_name", prop="teamName")
     *
     * @var string|null
     */
    private $teamName;

    /**
     * 
     *
     * @Column()
     *
     * @var int
     */
    private $owner;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $manager;

    /**
     * 
     *
     * @Column(name="current_num", prop="currentNum")
     *
     * @var int|null
     */
    private $currentNum;

    /**
     * 
     *
     * @Column(name="max_num", prop="maxNum")
     *
     * @var int
     */
    private $maxNum;

    /**
     * 
     *
     * @Column()
     *
     * @var string|null
     */
    private $notice;

    /**
     * 
     *
     * @Column(name="created_at", prop="createdAt")
     *
     * @var int|null
     */
    private $createdAt;

    /**
     * 0: free join
1: need verify apply
2: question and answer to join.
     *
     * @Column(name="join_mode", prop="joinMode")
     *
     * @var int|null
     */
    private $joinMode;

    /**
     * 
     *
     * @Column(name="join_question", prop="joinQuestion")
     *
     * @var string|null
     */
    private $joinQuestion;

    /**
     * 
     *
     * @Column(name="join_answer", prop="joinAnswer")
     *
     * @var string|null
     */
    private $joinAnswer;


    /**
     * @param int $teamId
     *
     * @return void
     */
    public function setTeamId(int $teamId): void
    {
        $this->teamId = $teamId;
    }

    /**
     * @param string|null $teamName
     *
     * @return void
     */
    public function setTeamName(?string $teamName): void
    {
        $this->teamName = $teamName;
    }

    /**
     * @param int $owner
     *
     * @return void
     */
    public function setOwner(int $owner): void
    {
        $this->owner = $owner;
    }

    /**
     * @param string|null $manager
     *
     * @return void
     */
    public function setManager(?string $manager): void
    {
        $this->manager = $manager;
    }

    /**
     * @param int|null $currentNum
     *
     * @return void
     */
    public function setCurrentNum(?int $currentNum): void
    {
        $this->currentNum = $currentNum;
    }

    /**
     * @param int $maxNum
     *
     * @return void
     */
    public function setMaxNum(int $maxNum): void
    {
        $this->maxNum = $maxNum;
    }

    /**
     * @param string|null $notice
     *
     * @return void
     */
    public function setNotice(?string $notice): void
    {
        $this->notice = $notice;
    }

    /**
     * @param int|null $createdAt
     *
     * @return void
     */
    public function setCreatedAt(?int $createdAt): void
    {
        $this->createdAt = $createdAt;
    }

    /**
     * @param int|null $joinMode
     *
     * @return void
     */
    public function setJoinMode(?int $joinMode): void
    {
        $this->joinMode = $joinMode;
    }

    /**
     * @param string|null $joinQuestion
     *
     * @return void
     */
    public function setJoinQuestion(?string $joinQuestion): void
    {
        $this->joinQuestion = $joinQuestion;
    }

    /**
     * @param string|null $joinAnswer
     *
     * @return void
     */
    public function setJoinAnswer(?string $joinAnswer): void
    {
        $this->joinAnswer = $joinAnswer;
    }

    /**
     * @return int
     */
    public function getTeamId(): ?int
    {
        return $this->teamId;
    }

    /**
     * @return string|null
     */
    public function getTeamName(): ?string
    {
        return $this->teamName;
    }

    /**
     * @return int
     */
    public function getOwner(): ?int
    {
        return $this->owner;
    }

    /**
     * @return string|null
     */
    public function getManager(): ?string
    {
        return $this->manager;
    }

    /**
     * @return int|null
     */
    public function getCurrentNum(): ?int
    {
        return $this->currentNum;
    }

    /**
     * @return int
     */
    public function getMaxNum(): ?int
    {
        return $this->maxNum;
    }

    /**
     * @return string|null
     */
    public function getNotice(): ?string
    {
        return $this->notice;
    }

    /**
     * @return int|null
     */
    public function getCreatedAt(): ?int
    {
        return $this->createdAt;
    }

    /**
     * @return int|null
     */
    public function getJoinMode(): ?int
    {
        return $this->joinMode;
    }

    /**
     * @return string|null
     */
    public function getJoinQuestion(): ?string
    {
        return $this->joinQuestion;
    }

    /**
     * @return string|null
     */
    public function getJoinAnswer(): ?string
    {
        return $this->joinAnswer;
    }

}
